package model;

import model.Articles;
import model.Course;
import model.Description;
import model.Ressource;
import employee.Employee;
import employee.EmployeeExternal;
import employee.EmployeeRegular;
import lecture.Lecture;
import lecture.LectureEntityLecture;
import lecture.LectureEntityTD;
import lecture.LectureEntityTP;
import view.ViewCourseUnit;
import view.ViewSemester;
import view.ViewTheme;
import view.ViewUE;

public class SyllabusFactory {

public SyllabusFactory(){
		
	}
	
	public Course createCourse(){
		return new Course();
	}
	
	public Course createCourse(String name, String code){
		return new Course(name,code);
	}
	
	public EmployeeRegular createRegularEmployee(){
		return new EmployeeRegular();
	}
	
	public EmployeeRegular createRegularEmployee(String name, String firstName, String email){
		return new EmployeeRegular(name,firstName,email);
	}
	
	public EmployeeRegular createRegularEmployee(String name, String firstName){
		return new EmployeeRegular(name,firstName);
	}
	
	public EmployeeExternal createExternalEmployee(){
		return new EmployeeExternal();
	}
	
	public EmployeeExternal createExternalEmployee(String name, String firstName){
		return new EmployeeExternal(name,firstName);
	}
	
	public EmployeeExternal createExternalEmployee(String name, String firstName, String email){
		return new EmployeeExternal(name,firstName,email);
	}
	
	public ViewCourseUnit createViewCourseUnit(){
		return new ViewCourseUnit();
	}
	
	public ViewCourseUnit createViewCourseUnit(String name, Employee owner){
		return new ViewCourseUnit(name,owner);
	}
	
	public ViewCourseUnit createViewCourseUnit(String name){
		return new ViewCourseUnit(name);
	}
	
	public ViewSemester createViewSemester(){
		return new ViewSemester();
	}
	
	public ViewSemester createViewSemester(String name, int number){
		return new ViewSemester(name,number);
	}
	
	public ViewTheme createViewTheme(){
		return new ViewTheme();
	}
	
	public ViewTheme createViewTheme(String name){
		return new ViewTheme(name);
	}
	
	public ViewUE createViewUE(){
		return new ViewUE();
	}
	
	public ViewUE createViewUE(String name){
		return new ViewUE(name);
	}
	
	public Lecture createLecture(){
		return new Lecture();
	}
	
	public Lecture createLecture(String name, String code, float ects, float coeff, String level, Employee owner){
		return new Lecture(name,code,ects,coeff,level,owner);
	}
	
	public Lecture createLecture(String name){
		return new Lecture(name);
	}
	
	public LectureEntityLecture createLectureEntityLecture(){
		return new LectureEntityLecture();
	}
	
	public LectureEntityLecture createLectureEntityLecture(String name){
		return new LectureEntityLecture(name);
	}
	
	public LectureEntityLecture createLectureEntityLecture(String name, Employee owner, float length, String exam){
		return new LectureEntityLecture(name,owner,length,exam);
	}
	
	public LectureEntityTD createLectureEntityTD(){
		return new LectureEntityTD();
	}
	
	public LectureEntityTD createLectureEntityTD(String name){
		return new LectureEntityTD(name);
	}
	
	public LectureEntityTD createLectureEntityTD(String name, Employee owner, float length, String exam){
		return new LectureEntityTD(name, owner, length, exam);
	}
	
	public LectureEntityTP createLectureEntityTP(){
		return new LectureEntityTP();
	}
	
	public LectureEntityTP createLectureEntityTP(String name){
		return new LectureEntityTP(name);
	}
	
	public LectureEntityTP createLectureEntityTP(String name, Employee owner, float length, String exam){
		return new LectureEntityTP(name, owner, length, exam);
	}
	
	public Articles createArticles(){
		return new Articles();
	}
	
	public Articles createArticles(String title, String content){
		return new Articles(title,content);
	}
	
	public Description createDescription(){
		return new Description();
	}
	
	public Ressource createRessource(){
		return new Ressource();
	}
	
	public Ressource createRessource(String name,String url,Description description){
		return new Ressource(name,url,description);
	}
}
